﻿using Microsoft.EntityFrameworkCore;
using PlutoStudio.Dependency;
using PlutoStudio.Domain.UnitOfWork;
using System;
using System.Collections.Generic;
using System.Text;

namespace PlutoStudio.EF.UnitOfWork
{
    public interface IEfTransactionStrategy
    {
        void InitOptions(UnitOfWorkOptions options);

        FrameworkDbContext CreateDbContext<TDbContext>(string connectionString, IDbContextResolver dbContextResolver)
            where TDbContext : FrameworkDbContext;

        void Commit();

        void Dispose(IIocResolver iocResolver);
    }
}
